¿Cómo usar Ribbon Workbench para personalizar D365 CRM?

 

Es habitual en las implementaciones que muchos requerimientos estén relacionados con modificar la interfaz de usuario de D365 CRM. Existen muchos pros y contras con hacer eso pero no voy a entrar en esos detalles. También existen limitaciones de las cosas que podemos editar en cuanto a interfaz gráfica y que tampoco voy a mencionar en este artículo.

En lo que quiero enfocarme es en un tipo de requerimiento que es muy habitual: Personalizar la cinta o botonera del menú principal.


Es muy común que, durante la implementación, se pida al equipo técnico: 
  • “Necesitamos ocultar este botón del menú”
  • “Necesitamos agregar un botón nuevo para disparar una acción”
  • “Quiero ocultar este botón si sucede determinada condición”
Todo este tipo de solicitudes es realizable gracias a Ribbon Workbench. Esta herramienta de terceros desarrollada por Scott Durow, es un kit de herramientas diseñada para poder editar la cinta de opciones de una manera sencilla y sin romper nada.
Algo que hay que tener en cuenta es: editar el comportamiento de la cinta de opciones es algo muy delicado. Donde un cambio mal aplicado puede dañar el producto. Por lo tanto hay que saber qué se esta editando y qué limitaciones hay que tener en consideración. Ribbon Workbench nos asegura, al menos, que el margen de error sea más chico.

¿Cómo usar Ribbon workbench? (de ahora en adelante RWB)

Hace muchos años atrás, RWB era un toolkit que se descargaba desde la página oficial y se utilizaba como cualquier herramienta. En la actualidad, ya forma parte del catálogo de herramientas en XrmToolbox (otra gran herramienta para cualquier desarrollador de Dynamics 365 CRM). 

Entonces, para iniciar RWB lo debemos buscar en el catálogo de XrmToolbox. En caso de no encontrarlo, hay que instalarlo. Luego, sigue la conexión al entorno de desarrollo donde queremos aplicar el cambio, este paso es el mismo que debemos seguir cuando queremos usar cualquier plugin o herramienta de XrmToolbox.

Cuando iniciamos RWB nos pide seleccionar una solución:



Y acá viene la parte mas importante y que hay que tener cuidado:

  1. Por cada tabla que queramos editarle la cinta de opciones / menú crear una solución aparte. No es una buena practica meter todos los cambios del ribbon en una misma solución. 
  2. Lo único que hace falta incluir en esa solución es la tabla a la cual queremos personalizar junto con su metadata. Nada más, no hay que agregar ningún otro componente. La solución debe ser lo más liviana posible.

  3. Es buena idea colocar un nombre significativo a la solución, por ejemplo: AccountRibbonCustomization o similar. Para que al momento de elegir la solución en RWB podamos identificarla.
  4. Antes de tocar nada en RWB, exportar la solución que acabamos de crear para editar el ribbon. Esto es a los efectos de guardarnos una copia de seguridad. Como estamos trabajando con soluciones no administradas, si sucediera algo que rompe nuestro ribbon, podemos volver a importar nuestra copia de seguridad. Si no hiciste una copia de seguridad antes y por algún motivo tu ribbon está dañado, una solución puede ser crear un trial o tomar una copia de otro entorno donde sepamos que el ribbon funciona correctamente e importar una copia de ese otro entorno.
  5. Por último, realizar de a un cambio por vez. Esto te va a ayudar a identificar mejor los issues.

Una vez que creamos la solución con la tabla a la cual queremos editar el ribbon, cargamos la solución:



Finalizado el proceso de carga, ya veremos el panel de herramientas para poder editar:





Como veras en la imagen anterior, existen 3 grupos de cinta de opciones que podemos editar:

  1. Aquel menú que pertenece al home de la tabla. La home es la pantalla principal que nos muestra Dynamics cuando seleccionamos una tabla, por ejemplo:




  2. Aquel menú que pertenece a una sub-grilla. Por ejemplo imaginemos que ingresamos a un registro de Cuenta (account) y tenemos una subgrilla con la relación a la tabla contactos:



  3. Por último, podemos editar aquel menú que este situado en el formulario cuando abrimos un registro particular:


Una vez que entendemos esta estructura, lo siguiente es entender qué es lo que queremos editar. Por ejemplo, si queremos simplemente ocultar un botón en alguno de los 3 ámbitos descriptos, simplemente debemos seleccionar el botón (hacer click) y con el menú contextual del mouse seleccionar la acción que necesitamos.


Lo mas común es que queramos ocultar o mostrar determinado botón según determinada lógica. Eso se puede realizar utilizando “Enable Rules” + JavaScript. Esto último lo estaré explicando en otro post. Por ahora lo que mas me importa que sepas es cómo empezar a utilizar el RWB. 

Por último, quiero dejar una serie de recomendaciones:

  1. Jamás borrar ningún botón estándar. Es conveniente ocultarlo.
  2. Si debemos editar el comportamiento de un botón estándar, yo sugiero siempre clonar el botón. Ocultar el original y trabajar sobre el elemento clonado. Eso nos da la seguridad que, en caso de error, podemos siempre volver al original sin depender de una copia de seguridad.

Comentarios